#ifndef _APP_ISERVER_H_
#define _APP_ISERVER_H_

#include <string>

#include "common/common.h"

namespace app {

class IServerHandler;

class IServer {
public:
    virtual void Run() = 0;		  
    virtual void Terminate() = 0;

    virtual void SetHandler(IServerHandler* handler) = 0;

    virtual uint32_t GetId() = 0;

    virtual uint32_t GetServerType() = 0;
    virtual void SetServerType(uint32_t server_type) = 0;

    virtual void AddWatcher(uint32_t server_type) = 0;
};

}

#endif
